sset = {A,B}
iset = {1,2,3}
cset = {Red,Blue,Green}
tset = {System.String}
sset X iset = {(A,1),(A,2),(A,3),(B,1),(B,2),(B,3)}
sset X tset = {(A,System.String),(B,System.String)}
sset X sset = {(A,A),(A,B),(B,A),(B,B)}
sset X cset = {(A,Red),(A,Blue),(A,Green),(B,Red),(B,Blue),(B,Green)}
tset X sset = {(System.String,A),(System.String,B)}
tset X tset = {(System.String,System.String)}
tset X iset = {(System.String,1),(System.String,2),(System.String,3)}
tset X cset = {(System.String,Red),(System.String,Blue),(System.String,Green)}
iset X sset = {(1,A),(1,B),(2,A),(2,B),(3,A),(3,B)}
iset X tset = {(1,System.String),(2,System.String),(3,System.String)}
iset X iset = {(1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3,3)}
iset X cset = {(1,Red),(1,Blue),(1,Green),(2,Red),(2,Blue),(2,Green),(3,Red),(3,Blue),(3,Green)}
cset X sset = {(Red,A),(Red,B),(Blue,A),(Blue,B),(Green,A),(Green,B)}
cset X tset = {(Red,System.String),(Blue,System.String),(Green,System.String)}
cset X iset = {(Red,1),(Red,2),(Red,3),(Blue,1),(Blue,2),(Blue,3),(Green,1),(Green,2),(Green,3)}
cset X cset = {(Red,Red),(Red,Blue),(Red,Green),(Blue,Red),(Blue,Blue),(Blue,Green),(Green,Red),(Green,Blue),(Green,Green)}
